home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Utilities Experience
/
The Utilities Experience - Volume 1.iso
/
software
/
workbench+shell
/
g-p
/
mcp
/
docs
/
patchcontrol_ger.doc
< prev
next >
Wrap
Text File
|
1995-07-22
|
4KB
|
101 lines
____ _____
o______ / _ /__ ____________\ _|______ ________ ____________ o
:\___ \ //___)\ __/ _ \ _ \_ __// __/___)\ __/_ _ \:
::/ \ \ / _\ \ _)_ \ \ \ | _)_\____ \ \/ \ _\ \ \
:/ _\ \ // \\ / \/ / \ | / \ _/ // \\ _\ // / /
/_________\ /____\_____\ //:\____|_______\____/____\____/_/ //:
o--/_______/---- - --/___/--- ----- -- - --- ---- -- ----/___/-o
PRÄSENTIERT
PatchControl V1.3
(C) Copyright 1994-1995 by ALiENDESiGN
Einleitung:
----------
Sicherlich ist das Problem bekannt: Ein Programm kann nicht entfernt werden,
weil es seine Patches nicht entfernen kann (z.b. wenn man mit MCP-Preferences
die Konfig abspeichert). Dieses Programm behebt dieses Problem mit den Sys-
temPatches. Alle Programme können nun ihre Patches entfernen. PatchControl
ist selbstverständlich kompatibel zu SetMan.
Unterschiede zwischen Setman und PatchControl:
---------------------------------------------
Ohne Setman oder PatchControl kann nur das letzte Programm entfernt werden,
daß einen Vektor gepatcht hat. Alle Programme (wie MCP), die Setman unter-
stützen, können immer entfernt werden. Andere Programme aber (wie Snoopy
oder Enforcer), die nicht Setman unterstützen, können niemals entfernt wer-
den. PatchControl behebt dieses Problem.
Installation:
------------
PatchControl muß unbedingt gleich nach dem SetPatch in der Startup-Sequence
gestartet werden:
z.b.:
C:SetPatch QUIET
C:PatchControl
.... alle anderen Aufrufe folgen hier
Benutzung:
----------
Nach PatchContol kann man Tasknamen angeben, die ihre Patches vor allen
anderen einfügen sollen. Diese Option ist sehr wichtig für ARQ oder ähnliche
Programme. Man kann dann ARQ irgendwann starten und nicht unbedingt vor
dem MCP. Hier ein Beispiel für ARQ:
C:PatchControl ARQ
Groß-klein-Schreibung wird nicht unterschieden und Joker werden unterstützt.
für Programmierer:
-----------------
PatchControl ist sehr einfach zu benutzen. Man muß einfach die Funktion
FindPort("SetMan") aufrufen und wenn der "SetMan"-Port existiert, die
Patches (mit SetFunktion()) einfach zurücksetzen, ohne sie zuvor zu kontrol-
lieren. PatchControl macht den Rest.
Developers: (Viruskiller-Programmierer)
----------
Eine Liste aller Patches kann man wie folgt bekommen:
Einfach FindPort() "Setman" aufrufen und folgendes auslesen:
MP_SIGTASK APTR (im alten Setman = 0)
Im SIGTASK (genannt PatchControl) muß dann nur noch TC_USERDATA ausgelesen
werden. Dies ist ein Zeiger auf die PatchList.
Patchlist:
APTR LibraryBase
ULONG Offset
APTR PatchNode ;First Node
APTR LibraryBase
ULONG Offset
APTR PatchNode
. ;Hier folgen weitere Strukturen
. ;Mit einer Null in APTR Library endet die Liste.
.
PatchNode:
APTR Next_Node ;Offset 00
APTR Previous_Node ;Offset 04
JMP Next_Program ;Offset 08 Adresse des nächsten Programms
APTR Program ;Offset 14 Programm für diese Node
APTR TaskName ;Offset 18 der Task-Name von diesem Programm
LABEL PatchNode_SizeOf
Autor:
-----
Stefan "zerocom" Sommerfeld
Kaulbachstr. 3
14612 Falkensee
Deutschland
Telefon: +49-[0]3322-202452
EMail: zerocom@cs.tu-berlin.de
oder rufe folgende Support-BBS an: eViL moOn! +49-[0]3322-208768 (2400-33600)